const path = require('path') // 引入path模块
function resolve(dir) {
  return path.join(__dirname, dir) // path.join(__dirname)设置绝对路径
}

module.exports = {
  /* baseUrl 将部署应用程序的基本URL type:{string} default:'/，但是从vue3.3版本开始弃用了，要用publicPath' */
  // publicPath: './', // 静态资源路径改为相对路径，否则静态资源路径会报错

  /* 是否在保存的时候检查 */
  lintOnSave: true,

  /* 是否在构建生产包时生成 sourceMap 文件，false将提高构建速度 */
  productionSourceMap: false,
  // less设置，注意less-loader的版本，避免与UI库等插件的版本冲突
  // 如ant design 2.x 3.x需要less-loader 6.x以上
  pluginOptions: {
    'style-resources-loader': {
      preProcessor: 'less',
      patterns: [resolve('src/assets/styles/common/variable.less')] // 此处即变量样式文件路径，可多个
    }
  },
  devServer: {
    open: true, // 启动服务后是否打开浏览器
    overlay: {
      // 错误信息展示到页面
      warnings: true,
      errors: true
    },
    // host: '0.0.0.0',
    port: 50001, // 服务端口
    https: false
    // hotOnly: false,
    /* 配置跨域代理 */
    // proxy: 'http://localhost:4000' // 只有一个代理
    // proxy: {
    //   '/api': {
    //     target: '<url>',
    //     ws: true,
    //     changeOrigin: true,
    //   },
    //   '/foo': {
    //     target: '<other_url>',
    //   },
    // }, // 多个代理
  },
  chainWebpack: config => {
    /* 查看打包文件体积大小 */
    // config
    //   .plugin('webpack-bundle-analyzer')
    //   .use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin);

    config.plugin('html').tap(args => {
      args[0].title = 'vue3 + TS' // 修改浏览图页签的标题
      return args
    })

    //  // 移除 prefetch 插件(针对生产环境首屏请求数进行优化)
    //  config.plugins.delete('prefetch')
    //  // 移除 preload 插件(针对生产环境首屏请求数进行优化)
    //  config.plugins.delete('preload')
  }
  // // 配置打包 js、css文件为.gz格式，优化加载速度  （参考：https://blog.csdn.net/qq_31677507/article/details/102742196）
  // configureWebpack: config => {
  //   if (process.env.NODE_ENV === 'production') {
  //     return {
  //       plugins: [
  //         new CompressionPlugin({
  //           test: /\.js$|\.css/, // 匹配文件
  //           threshold: 10240, // 超过10kB的数据进行压缩
  //           deleteOriginalAssets: false // 是否删除原文件 （原文件也建议发布到服务器以支持不兼容gzip的浏览器）
  //         })
  //       ],
  //       performance: {
  //         // 生产环境构建代码文件超出以下配置大小会在命令行中显示警告
  //         hints: 'warning',
  //         // 入口起点的最大体积 整数类型（以字节为单位,默认值是：250000 (bytes)）
  //         maxEntrypointSize: 5000000,
  //         // 生成文件的最大体积 整数类型（以字节为单位,默认值是：250000 (bytes)）
  //         maxAssetSize: 3000000
  //         // // 只给出 js 文件的性能提示
  //         // assetFilter: function (assetFilename) {
  //         //   return assetFilename.endsWith('.js')
  //         // }
  //       }
  //     }
  //   }
  // }
}
